﻿using System;
using System.Web;
using DAL;
using Entity;
using NLog;
using System.Text.RegularExpressions;
using System.Web.UI;

public partial class mobile_mobileMaster : System.Web.UI.MasterPage
{
    #region Variables
    private static Logger _logger = LogManager.GetCurrentClassLogger();
    SiteConfiguration objSiteConfiguration;
    #endregion

    #region pageload

    //BEGIN: Removing HTML white Space. #####################################################################
    private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
    private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);

    protected override void Render(HtmlTextWriter writer)
    {
        try
        {
            using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
            {
                base.Render(htmlwriter);
                string html = htmlwriter.InnerWriter.ToString();
                html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
                html = REGEX_LINE_BREAKS.Replace(html, string.Empty);
                writer.Write(html.Trim());
            }
        }
        catch (Exception ex)
        {
            _logger.Error("Mobile:::master:::Render:::" + ex.Message);
            throw;
        }
    }

    //END: Removing HTML white Space. #####################################################################


    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                string sRequestURL = Request.Url.GetLeftPart(UriPartial.Authority) + Request.RawUrl;
                if (sRequestURL.Contains("tajid.com"))
                {
                    Response.Redirect("http://www.livekora.net/LiveKora_LiveCode.htm", false);
                }
                else
                {
                    Response.Cache.SetCacheability(HttpCacheability.Public);
                    Response.Cache.SetMaxAge(new TimeSpan(1, 0, 0));
                }
            }
        }
        catch (Exception ex)
        {
            _logger.Error("mobile_mobileMaster:::Mobile Version::Page_Load:::" + ex.Message);
            throw;
        }
    }
    #endregion

    #region Methods
    protected string GetDateFormat(string sDataTime)
    {
        try
        {
            return Convert.ToDateTime(sDataTime).ToShortDateString();
        }
        catch (Exception)
        {
            return "Unknown";
        }
    }
    //protected string GetWebsiteKeywords()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().MetaKeywords))
    //            return "<meta name='keywords' content='" + FormsFunction.RetrieveWebConfig().MetaKeywords + "' />";
    //        else
    //            return "<meta name='keywords' content='liveKora,لايف كورة,كرة القدم,سبورت,موقع رياضى,نتائج مباريات,جدول المباريات,الدوري الاسباني,الدوري الانجليزي,الدوري الايطالي' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("mobile_mobileMaster::Mobile Version:::GetWebsiteKeywords:::" + ex.Message);
    //        return "<meta name='keywords' content='liveKora,لايف كورة,كرة القدم,سبورت,موقع رياضى,نتائج مباريات,جدول المباريات,الدوري الاسباني,الدوري الانجليزي,الدوري الايطالي' />";
    //    }
    //}
    //protected string GetCasheStatus()
    //{
    //    try
    //    {
    //        if (FormsFunction.RetrieveWebConfig().CacheStatus == "1")
    //            return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='Public'>";
    //        else
    //            return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='no-Cache'>";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("mobile_mobileMaster::Mobile Version:::GetCasheStatus:::" + ex.Message);
    //        return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='Public'>";
    //    }
    //}
    protected string GetThumManager(string sArticlsThumb, string sArticlsVedio)
    {
        try
        {
            if (sArticlsVedio == "null" || string.IsNullOrEmpty(sArticlsVedio))
            {
                return "../../../" + sArticlsThumb;
            }
            else
            {
                string[] parts = sArticlsVedio.Split(new[] { "=" }, int.MaxValue, StringSplitOptions.None);
                return "http://img.youtube.com/vi/" + parts[1] + "/mqdefault.jpg";
            }
        }
        catch (Exception)
        {

            return "";
        }
    }
    //protected string GetFaceBookWebsiteTitle()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().SiteName))
    //            return "<meta property='og:title' content='" + FormsFunction.RetrieveWebConfig().SiteName + "' />";
    //        else
    //            return "<meta property='og:title' content='أخبار كرة القدم | لايف كورة الرياضي | آخر الأحداث الرياضية و كرة القدم – LiveKora  لايف كورة' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("mobile_mobileMaster::Mobile Version:::GetFaceBookWebsiteTitle:::" + ex.Message);
    //        return "<meta property='og:title' content='أخبار كرة القدم | لايف كورة الرياضي | آخر الأحداث الرياضية و كرة القدم – LiveKora  لايف كورة' />";
    //    }
    //}
    //protected string GetFaceBookGetWebsiteDesceiption()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().MetaDescription))
    //            return "<meta property='og:description' content='" + FormsFunction.RetrieveWebConfig().MetaDescription + "' />";
    //        else
    //            return "<meta property='og:description' content='موقع رياضي رائع يغطي كافة اخبار الدور الاسباني و الكرة الانجليزية و الكرة الايطالية و الكرة العالمية جميعا و مواعيد المباريات والبث المباشر للمباريات المهمة و الحصرية ونتائج المباريات  - liveKora' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("mobile_mobileMaster::Mobile Version:::GetFaceBookGetWebsiteDesceiption:::" + ex.Message);
    //        return "<meta property='og:description' content='موقع رياضي رائع يغطي كافة اخبار الدور الاسباني و الكرة الانجليزية و الكرة الايطالية و الكرة العالمية جميعا و مواعيد المباريات والبث المباشر للمباريات المهمة و الحصرية ونتائج المباريات  - liveKora' />";
    //    }
    //}
    protected string GenerateURL(object Title, object strId)
    {
        try
        {
            string strTitle = Title.ToString();

            //#region Generate SEO Friendly URL based on Title

            strTitle = strTitle.Trim();
            strTitle = strTitle.Trim('-');

            strTitle = strTitle.ToLower();
            char[] chars = @"$%#@!*?;:~`+=()[]{}|\'<>,/^&"".".ToCharArray();
            strTitle = strTitle.Replace("c#", "C-Sharp");
            strTitle = strTitle.Replace("vb.net", "VB-Net");
            strTitle = strTitle.Replace("asp.net", "Asp-Net");
            strTitle = strTitle.Replace(".", "-");
            for (int i = 0; i < chars.Length; i++)
            {
                string strChar = chars.GetValue(i).ToString();
                if (strTitle.Contains(strChar))
                {
                    strTitle = strTitle.Replace(strChar, string.Empty);
                }
            }
            strTitle = strTitle.Replace(" ", "-");

            strTitle = strTitle.Replace("--", "-");
            strTitle = strTitle.Replace("---", "-");
            strTitle = strTitle.Replace("----", "-");
            strTitle = strTitle.Replace("-----", "-");
            strTitle = strTitle.Replace("----", "-");
            strTitle = strTitle.Replace("---", "-");
            strTitle = strTitle.Replace("--", "-");
            strTitle = strTitle.Trim();
            strTitle = strTitle.Trim('-');
            strTitle = "../../../mobile/Articles/" + strId + "/" + strTitle;
            return strTitle;
        }
        catch (Exception)
        {
            return "";
        }
    }
    #endregion
}
